package com.efuture.chaptersix

/* @Description: Kotlin语言接口默认实现
 * @Auther: zhaoshanshan
 * @Date: 2022/03/07/7:20 下午
 */
interface IUSB2{

    // 1.接口 var 也是不能给接口的成员赋值的 （但是有其他办法）
    // 2.任何类 接口 等等  val 代表只读的，是不可以在后面动态赋值 （也有其他办法）

    val usbVersionInfo:String
    get() = "4.0"//可以通过get方法 给接口成员变量默认赋值 实现类可以覆盖 也可以使用接口的值
    val usbDeivceInfo:String
        get() = "4.0版本USB接口"//可以通过get方法 给接口成员变量默认赋值 实现类可以覆盖 也可以使用接口的值
    fun insertUSB():String
}
class Mouse2(override val usbVersionInfo: String = "5.0", override val usbDeivceInfo: String="5.0版本USB接口"):IUSB2{
//    override val usbVersionInfo: String
//        get() = super.usbVersionInfo////使用父类的值
//    override val usbDeivceInfo: String
//        get() = super.usbDeivceInfo//使用父类的值

    //如果 usbVersionInfo usbDeivceInfo 不重写用父类的值

    override fun insertUSB(): String {
        return "usbVersionInfo:${usbVersionInfo};usbDeivceInfo${usbDeivceInfo}"
    }
}

fun main() {

    val m:IUSB2 = Mouse2()
    println(m.insertUSB())

}
    